package com.rt.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.rt.common.annotation.Excel;
import com.rt.common.core.domain.BaseEntity;

/**
 * 试题对象 rt_questions_info
 * 
 * @author Yg
 * @date 2022-04-13
 */
public class RtQuestionsInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 科目id，关联到kk_subject表主键 */
    @Excel(name = "科目id，关联到kk_subject表主键")
    private Long subjectId;

    @Excel(name = "科目")
    private String subject;

    /** 知识体系id，关联到kk_knowledge_info表主键 */
    @Excel(name = "知识体系id，关联到kk_knowledge_info表主键")
    private Long knowledgeId;

    /** 知识体系*/
    @Excel(name = "知识体系")
    private String knowledge;

    /** 题型，关联到kk_question_type表主键 */
    @Excel(name = "题型，关联到kk_question_type表主键")
    private Long questionTypeId;

    /** 题型*/
    @Excel(name = "题型")
    private String questionType;

    /** 题型模块id */
    @Excel(name = "题型模块id")
    private Long questionModuleId;

    /** 题型模块 */
    @Excel(name = "题型模块")
    private String questionModule;

    /** 试题难度，关联到kk_hard_level表主键 */
    @Excel(name = "试题难度")
    private Long importanceId;

    /** 试题难度 */
    @Excel(name = "试题难度")
    private String importance;

    /** 试题描述（题干） */
    @Excel(name = "试题描述")
    private String questionsContent;

    /** 是否正确(判断题) 0:错误 1:正确 */
    @Excel(name = "是否正确(判断题)",readConverterExp = "0=错误,1=正确")
    private Integer isCorrect;

    /** 状态，0：禁用，1：启用（默认） */
    @Excel(name = "状态", readConverterExp = "0=禁用,1=启用")
    private Integer status;

    /** 父节点，即上级ID，顶级时ID为0 */
    @Excel(name = "父节点，即上级ID，顶级时ID为0")
    private String parentId;

    /** 是否入库，0：否（默认），1：是 */
    @Excel(name = "是否入库", readConverterExp = "0=否,1=是")
    private Integer isInput;

    /** 答案（问答题） */
    @Excel(name = "答案")
    private String answer;

    /** 关键字 */
    @Excel(name = "关键字")
    private String keyword;

    /** 0普通组题，1智能组题 */
    @Excel(name = "0普通组题，1智能组题")
    private Integer creationPattern;

    /** 智能类型：0：普通题型，非智能型试题；1：题干无参数，选项单参数，选项数量固定；2：题干无参数，选项无参数，选项多预备项；3：题干单参数，选项无参数，选项多预备项；4：题干单参数，选项无参数，选项数量固定；5：题干单参数，判断题；6：题干多参数，案例答案有参数 */
    @Excel(name = "智能类型")
    private Integer smartType;

    /** 试题来源,1网上征题；2手工录入 */
    @Excel(name = "试题来源",readConverterExp = "1=网上征题,2=手工录入")
    private Integer questionSource;

    /** 试题创建者（录入人） */
    @Excel(name = "录入人")
    private String createOperator;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updateOperator;

    /** 是否完成查重0：已，1：未 */
    @Excel(name = "是否完成查重",readConverterExp = "0=已完成,1=未完成")
    private Integer checkComplete;

    /** 查重时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "查重时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkTime;

    /** 相似度 */
    @Excel(name = "相似度")
    private Long similarityDegree;

    /** 相似试题id */
    @Excel(name = "相似试题id")
    private String similarityQuestionId;

    /** 命题人 */
    @Excel(name = "命题人")
    private String expertName;

    /** 审题人 */
    @Excel(name = "审题人")
    private String examineName;

    /** 试题难易度 */
    @Excel(name = "试题难易度")
    private Integer difficulty;

    /** 试题分值（暂时不用） */
    @Excel(name = "试题分值")
    private BigDecimal score;

    /** 试题时效0：有1：无 */
    @Excel(name = "试题时效",readConverterExp = "0=有,1=无")
    private Integer aging;

    /** 有效期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validTime;

    /** 使用次数 */
    @Excel(name = "使用次数")
    private Long useCount;

    /** 最近使用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最近使用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date useTimeNearest;

    /** 最近使用地市 */
    @Excel(name = "最近使用地市")
    private Long useAreaNearest;

    /** 所属地区 */
    @Excel(name = "所属地区")
    private Long belongArea;

    /** 使用状态。0：激活期、1：封存期、2：待删除 */
    @Excel(name = "使用状态。0：激活期、1：封存期、2：待删除")
    private Integer useStatus;

    /** 解封日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "解封日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lockEndTime;

    /** 审核状态：0：待审核；1：审核通过； */
    @Excel(name = "审核状态",readConverterExp = "0=待审核,1=审核通过")
    private Integer verityStatus;

    /** 特定背景 */
    @Excel(name = "特定背景")
    private String specificBackground;

    /** 选项信息 */
    @Excel(name = "选项信息")
    private List<RtOptionsInfo> rtOptionsInfos;

    /** 试题数量 */
    @Excel(name = "试题数量")
    private Integer sum;

    /** 封存数量 */
    @Excel(name = "封存数量")
    private Integer archiveSum;

    /** 待删除数量 */
    @Excel(name = "待删除数量")
    private Integer deletedSum;

    /** 录入人id */
    @Excel(name = "录入人id")
    private Long userId;

    /** 案列题 */
    @Excel(name = "案列题")
    private List<RtQuestionsInfo> rtQuestionsInfos;

    @Override
    public String toString() {
        return "RtQuestionsInfo{" +
                "id='" + id + '\'' +
                ", subjectId=" + subjectId +
                ", subject='" + subject + '\'' +
                ", knowledgeId=" + knowledgeId +
                ", knowledge='" + knowledge + '\'' +
                ", questionTypeId=" + questionTypeId +
                ", questionType='" + questionType + '\'' +
                ", questionModuleId=" + questionModuleId +
                ", questionModule='" + questionModule + '\'' +
                ", importanceId=" + importanceId +
                ", importance='" + importance + '\'' +
                ", questionsContent='" + questionsContent + '\'' +
                ", isCorrect=" + isCorrect +
                ", status=" + status +
                ", parentId='" + parentId + '\'' +
                ", isInput=" + isInput +
                ", answer='" + answer + '\'' +
                ", keyword='" + keyword + '\'' +
                ", creationPattern=" + creationPattern +
                ", smartType=" + smartType +
                ", questionSource=" + questionSource +
                ", createOperator='" + createOperator + '\'' +
                ", updateOperator='" + updateOperator + '\'' +
                ", checkComplete=" + checkComplete +
                ", checkTime=" + checkTime +
                ", similarityDegree=" + similarityDegree +
                ", similarityQuestionId='" + similarityQuestionId + '\'' +
                ", expertName='" + expertName + '\'' +
                ", examineName='" + examineName + '\'' +
                ", difficulty=" + difficulty +
                ", score=" + score +
                ", aging=" + aging +
                ", validTime=" + validTime +
                ", useCount=" + useCount +
                ", useTimeNearest=" + useTimeNearest +
                ", useAreaNearest=" + useAreaNearest +
                ", belongArea=" + belongArea +
                ", useStatus=" + useStatus +
                ", lockEndTime=" + lockEndTime +
                ", verityStatus=" + verityStatus +
                ", specificBackground='" + specificBackground + '\'' +
                ", rtOptionsInfos=" + rtOptionsInfos +
                ", sum=" + sum +
                ", archiveSum=" + archiveSum +
                ", deletedSum=" + deletedSum +
                ", userId=" + userId +
                ", rtQuestionsInfos=" + rtQuestionsInfos +
                '}';
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Long getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(Long subjectId) {
        this.subjectId = subjectId;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public Long getKnowledgeId() {
        return knowledgeId;
    }

    public void setKnowledgeId(Long knowledgeId) {
        this.knowledgeId = knowledgeId;
    }

    public String getKnowledge() {
        return knowledge;
    }

    public void setKnowledge(String knowledge) {
        this.knowledge = knowledge;
    }

    public Long getQuestionTypeId() {
        return questionTypeId;
    }

    public void setQuestionTypeId(Long questionTypeId) {
        this.questionTypeId = questionTypeId;
    }

    public String getQuestionType() {
        return questionType;
    }

    public void setQuestionType(String questionType) {
        this.questionType = questionType;
    }

    public Long getQuestionModuleId() {
        return questionModuleId;
    }

    public void setQuestionModuleId(Long questionModuleId) {
        this.questionModuleId = questionModuleId;
    }

    public String getQuestionModule() {
        return questionModule;
    }

    public void setQuestionModule(String questionModule) {
        this.questionModule = questionModule;
    }

    public Long getImportanceId() {
        return importanceId;
    }

    public void setImportanceId(Long importanceId) {
        this.importanceId = importanceId;
    }

    public String getImportance() {
        return importance;
    }

    public void setImportance(String importance) {
        this.importance = importance;
    }

    public String getQuestionsContent() {
        return questionsContent;
    }

    public void setQuestionsContent(String questionsContent) {
        this.questionsContent = questionsContent;
    }

    public Integer getIsCorrect() {
        return isCorrect;
    }

    public void setIsCorrect(Integer isCorrect) {
        this.isCorrect = isCorrect;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public Integer getIsInput() {
        return isInput;
    }

    public void setIsInput(Integer isInput) {
        this.isInput = isInput;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    public Integer getCreationPattern() {
        return creationPattern;
    }

    public void setCreationPattern(Integer creationPattern) {
        this.creationPattern = creationPattern;
    }

    public Integer getSmartType() {
        return smartType;
    }

    public void setSmartType(Integer smartType) {
        this.smartType = smartType;
    }

    public Integer getQuestionSource() {
        return questionSource;
    }

    public void setQuestionSource(Integer questionSource) {
        this.questionSource = questionSource;
    }

    public String getCreateOperator() {
        return createOperator;
    }

    public void setCreateOperator(String createOperator) {
        this.createOperator = createOperator;
    }

    public String getUpdateOperator() {
        return updateOperator;
    }

    public void setUpdateOperator(String updateOperator) {
        this.updateOperator = updateOperator;
    }

    public Integer getCheckComplete() {
        return checkComplete;
    }

    public void setCheckComplete(Integer checkComplete) {
        this.checkComplete = checkComplete;
    }

    public Date getCheckTime() {
        return checkTime;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }

    public Long getSimilarityDegree() {
        return similarityDegree;
    }

    public void setSimilarityDegree(Long similarityDegree) {
        this.similarityDegree = similarityDegree;
    }

    public String getSimilarityQuestionId() {
        return similarityQuestionId;
    }

    public void setSimilarityQuestionId(String similarityQuestionId) {
        this.similarityQuestionId = similarityQuestionId;
    }

    public String getExpertName() {
        return expertName;
    }

    public void setExpertName(String expertName) {
        this.expertName = expertName;
    }

    public String getExamineName() {
        return examineName;
    }

    public void setExamineName(String examineName) {
        this.examineName = examineName;
    }

    public Integer getDifficulty() {
        return difficulty;
    }

    public void setDifficulty(Integer difficulty) {
        this.difficulty = difficulty;
    }

    public BigDecimal getScore() {
        return score;
    }

    public void setScore(BigDecimal score) {
        this.score = score;
    }

    public Integer getAging() {
        return aging;
    }

    public void setAging(Integer aging) {
        this.aging = aging;
    }

    public Date getValidTime() {
        return validTime;
    }

    public void setValidTime(Date validTime) {
        this.validTime = validTime;
    }

    public Long getUseCount() {
        return useCount;
    }

    public void setUseCount(Long useCount) {
        this.useCount = useCount;
    }

    public Date getUseTimeNearest() {
        return useTimeNearest;
    }

    public void setUseTimeNearest(Date useTimeNearest) {
        this.useTimeNearest = useTimeNearest;
    }

    public Long getUseAreaNearest() {
        return useAreaNearest;
    }

    public void setUseAreaNearest(Long useAreaNearest) {
        this.useAreaNearest = useAreaNearest;
    }

    public Long getBelongArea() {
        return belongArea;
    }

    public void setBelongArea(Long belongArea) {
        this.belongArea = belongArea;
    }

    public Integer getUseStatus() {
        return useStatus;
    }

    public void setUseStatus(Integer useStatus) {
        this.useStatus = useStatus;
    }

    public Date getLockEndTime() {
        return lockEndTime;
    }

    public void setLockEndTime(Date lockEndTime) {
        this.lockEndTime = lockEndTime;
    }

    public Integer getVerityStatus() {
        return verityStatus;
    }

    public void setVerityStatus(Integer verityStatus) {
        this.verityStatus = verityStatus;
    }

    public String getSpecificBackground() {
        return specificBackground;
    }

    public void setSpecificBackground(String specificBackground) {
        this.specificBackground = specificBackground;
    }

    public List<RtOptionsInfo> getRtOptionsInfos() {
        return rtOptionsInfos;
    }

    public void setRtOptionsInfos(List<RtOptionsInfo> rtOptionsInfos) {
        this.rtOptionsInfos = rtOptionsInfos;
    }

    public Integer getSum() {
        return sum;
    }

    public void setSum(Integer sum) {
        this.sum = sum;
    }

    public Integer getArchiveSum() {
        return archiveSum;
    }

    public void setArchiveSum(Integer archiveSum) {
        this.archiveSum = archiveSum;
    }

    public Integer getDeletedSum() {
        return deletedSum;
    }

    public void setDeletedSum(Integer deletedSum) {
        this.deletedSum = deletedSum;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public List<RtQuestionsInfo> getRtQuestionsInfos() {
        return rtQuestionsInfos;
    }

    public void setRtQuestionsInfos(List<RtQuestionsInfo> rtQuestionsInfos) {
        this.rtQuestionsInfos = rtQuestionsInfos;
    }
}
